Invariant Generation in Vampire
نویسندگان
چکیده
This paper describes a loop invariant generator implemented in the theorem prover Vampire. It is based on the symbol elimination method proposed by two authors of this paper. The generator accepts a program written in a subset of C, finds loops in it, analyses the loops, generates and outputs invariants. It also uses a special consequence removal mode added to Vampire to remove invariants implied by other invariants. The generator is implemented as a standalone tool, thus no knowledge of theorem proving is required from its users.
منابع مشابه
Reasoning About Loops Using Vampire
In 2009, the symbol elimination method for loop invariant generation was introduced [8], which used saturation theorem proving in first-order logic to generate quantified invariants of programs with arrays. Symbol elimination is fully automatic, requires no user guidance, and it is the first ever approach able to generate invariants with alternations of quantifiers. In this paper we describe a ...
متن کاملInterpolation and Symbol Elimination in Vampire
It has recently been shown that proofs in which some symbols are colored (e.g. local or split proofs and symbol-eliminating proofs) can be used for a number of applications, such as invariant generation and computing interpolants. This tool paper describes how such proofs and interpolant generation are implemented in the first-order theorem prover Vampire.
متن کاملReasoning About Loops Over Arrays using Vampire
The search for automated loop invariants generation has been popularly pursued due to the fact that invariants play a critical role in the verification process. Invariants with quantifiers are particularly interesting for these quantified invariants can be used to express relationships among the elements of array variables and other scalar variables. Automated invariant generation using a first...
متن کاملReasoning About Loops Using Vampire in KeY
We describe symbol elimination and consequence nding in the rst-order theorem prover Vampire for automatic generation of quanti ed invariants, possibly with quanti er alternations, of loops with arrays. Unlike the previous implementation of symbol elimination in Vampire, our work is not limited to a speci c programming language but provides a generic framework by relying on a simple guarded com...
متن کاملInvariant and Type Inference for Matrices
We present a loop property generation method for loops iterating over multi-dimensional arrays. When used on matrices, our method is able to infer their shapes (also called types), such as upper-triangular, diagonal, etc. To generate loop properties, we first transform a nested loop iterating over a multidimensional array into an equivalent collection of unnested loops. Then, we infer quantifie...
متن کامل